package sort

// 选择排序
// 工作原理是每一次从待排序的数据元素中选出最小（或最大）的一个元素，
// 存放在序列的起始位置，直到全部待排序的数据元素排完
// arr[0] ---- 第一位和
// --- arr[1] ---- 第二位进行比较(第一位大于(或小于)第二位)，就进行交换
// --- arr[2] ---- 以此类推 (第一位和第三位比较，大于(或小于)就交换)
// --- arr[3] ---- 以此类推 (第一位和第四位比较，大于(或小于)就交换)
// ... 第一轮循环后 - 第一位就是最小（或最大）的一个元素
// 开始第二轮
// ...
// 主要是把最小(最大)数放到前面
func SelectSort(arr []int) []int {

	// 获取数组的大小(个数)
	arrLen := len(arr)

	// 每次将最小放到起始位置( i的位置 )
	for i:=0;i < arrLen ; i++ {
		for j:=i+1; j <arrLen; j++ {

			if arr[i] > arr[j] {
				arr[i], arr[j] = arr[j], arr[i]
			}

		}
	}

	return arr
}
